/*------------------------------------------------------------------------------
$module:      CseNum
$package:     CseApi
$purpose:     TIntObj TWintObj TFloatObj class definition
$author:      WAYNE WORK STDIO
$CreateAt:    08/07/04
$LastModify:
$license:     Mozilla Public License Version 1.1
------------------------------------------------------------------------------*/

#include "CseApi_.h"

#ifndef CLOSE_REF_CHECK
  TInt32 TotalIntObjCount = 0;
  TInt32 TotalWintObjCount = 0;
  TInt32 TotalFloatObjCount = 0;
#endif

// TIntObj
//------------------------------------------------------------------------------
TIntObj::TIntObj()
{
    m_data = 0;
#ifndef CLOSE_REF_CHECK
    TotalIntObjCount++;
#endif
}

TIntObj::TIntObj(const TIntObj& i)
{
    m_data = i.m_data;
#ifndef CLOSE_REF_CHECK
    TotalIntObjCount++;
#endif
}

TIntObj::TIntObj(TInt i)
{
    m_data = i;
#ifndef CLOSE_REF_CHECK
    TotalIntObjCount++;
#endif
}

TIntObj::~TIntObj()
{
#ifndef CLOSE_REF_CHECK
    TotalIntObjCount--;
#endif
}

TIntObj& TIntObj::operator=(const TIntObj& i)
{ m_data = i.m_data; return *this; }

TIntObj& TIntObj::operator=(TInt i)
{ m_data = i; return *this; }

TIntObj::operator TInt() const
{ return m_data; }

TIntObj& TIntObj::operator++()          // prefix increment
{ m_data++; return *this; }

TIntObj& TIntObj::operator++(int)       // postfix increment
{ m_data++; return *this; }

TIntObj& TIntObj::operator--()          // prefix decrement
{ m_data--; return *this; }

TIntObj& TIntObj::operator--(int)       // postfix decrement
{ m_data--; return *this; }

void TIntObj::operator*=(TInt i)
{ m_data *= i; }

void TIntObj::operator/=(TInt i)
{ m_data /= i; }

void TIntObj::operator%=(TInt i)
{ m_data %= i; }

void TIntObj::operator+=(TInt i)
{ m_data += i; }

void TIntObj::operator-=(TInt i)
{ m_data -= i; }

void TIntObj::operator<<=(TInt i)
{ m_data <<= i; }

void TIntObj::operator>>=(TInt i)
{ m_data >>= i; }

void TIntObj::operator&=(TInt i)
{ m_data &= i; }

void TIntObj::operator|=(TInt i)
{ m_data |= i; }

void TIntObj::operator^=(TInt i)
{ m_data ^= i; }


// TWintObj
//------------------------------------------------------------------------------
TWintObj::TWintObj()
{
    m_data = 0;
#ifndef CLOSE_REF_CHECK
    TotalWintObjCount++;
#endif
}

TWintObj::TWintObj(const TWintObj& i)
{
    m_data = i.m_data;
#ifndef CLOSE_REF_CHECK
    TotalWintObjCount++;
#endif
}

TWintObj::TWintObj(TWint i)
{
    m_data = i;
#ifndef CLOSE_REF_CHECK
    TotalWintObjCount++;
#endif
}

TWintObj::~TWintObj()
{
#ifndef CLOSE_REF_CHECK
    TotalWintObjCount--;
#endif
}

TWintObj& TWintObj::operator=(const TWintObj& i)
{ m_data = i.m_data; return *this; }

TWintObj& TWintObj::operator=(TWint i)
{ m_data = i; return *this; }

TWintObj::operator TWint() const
{ return m_data; }

TWintObj& TWintObj::operator++()          // prefix increment
{ m_data++; return *this; }

TWintObj& TWintObj::operator++(int)       // postfix increment
{ m_data++; return *this; }

TWintObj& TWintObj::operator--()          // prefix decrement
{ m_data--; return *this; }

TWintObj& TWintObj::operator--(int)       // postfix decrement
{ m_data--; return *this; }

void TWintObj::operator*=(TWint i)
{ m_data *= i; }

void TWintObj::operator/=(TWint i)
{ m_data /= i; }

void TWintObj::operator%=(TWint i)
{ m_data %= i; }

void TWintObj::operator+=(TWint i)
{ m_data += i; }

void TWintObj::operator-=(TWint i)
{ m_data -= i; }

void TWintObj::operator<<=(TInt i)
{ m_data <<= i; }

void TWintObj::operator>>=(TInt i)
{ m_data >>= i; }

void TWintObj::operator&=(TWint i)
{ m_data &= i; }

void TWintObj::operator|=(TWint i)
{ m_data |= i; }

void TWintObj::operator^=(TWint i)
{ m_data ^= i; }


// TFloatObj
//------------------------------------------------------------------------------
TFloatObj::TFloatObj()
{
    m_data = 0.0;
#ifndef CLOSE_REF_CHECK
    TotalFloatObjCount++;
#endif
}

TFloatObj::TFloatObj(const TFloatObj& f)
{
    m_data = f.m_data;
#ifndef CLOSE_REF_CHECK
    TotalFloatObjCount++;
#endif
}

TFloatObj::TFloatObj(TDouble f)
{
    m_data = f;
#ifndef CLOSE_REF_CHECK
    TotalFloatObjCount++;
#endif
}

TFloatObj::~TFloatObj()
{
#ifndef CLOSE_REF_CHECK
    TotalFloatObjCount--;
#endif
}

TFloatObj& TFloatObj::operator=(const TFloatObj& f)
{ m_data = f.m_data; return *this; }

TFloatObj& TFloatObj::operator=(TDouble f)
{ m_data = f; return *this; }

TFloatObj::operator TDouble() const
{ return m_data; }

TFloatObj& TFloatObj::operator++()          // prefix increment
{ m_data++; return *this; }

TFloatObj& TFloatObj::operator++(int)       // postfix increment
{ m_data++; return *this; }

TFloatObj& TFloatObj::operator--()          // prefix decrement
{ m_data--; return *this; }

TFloatObj& TFloatObj::operator--(int)       // postfix decrement
{ m_data--; return *this; }

void TFloatObj::operator*=(TDouble f)
{ m_data *= f; }

void TFloatObj::operator/=(TDouble f)
{ m_data /= f; }

void TFloatObj::operator+=(TDouble f)
{ m_data += f; }

void TFloatObj::operator-=(TDouble f)
{ m_data -= f; }
